#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
主题:使用多个界定符分割字符串
问题: 你需要将一个字符串分割为多个字段，但是分隔符(还有周围的空格)并不是固定的。
提示 : 
"""
import re


def recipe1():
    """使用 re.split() 方法"""
    line = 'asdf fjdk; afed, fjek,asdf, foo'
    print(f"{line = }")
    fields = re.split(r'[;,\s]\s*', line)  # 分隔符可以是逗号，分号或者是空格
    print(f"{fields = }")

    # 使用了捕获分组，那么被匹配的文本也将出现在结果列表中
    # fields = re.split(r'(;|,|\s)\s*', line) # sonar Code Smell
    fields = re.split(r'([;,\s])\s*', line)
    print(f"{fields = }")

    # 重新构造一个新的输出字符串
    values = fields[::2]
    print(f"{values = }")
    delimiters = fields[1::2] + ['']
    print(f"{delimiters = }")
    print(f"{''.join(v+d for v, d in zip(values, delimiters)) = }")

    # 不想保留分割字符串到结果列表中去，但仍然需要使用到括号来分组正则表达式
    # fields = re.split(r'(?:[,;\s])\s*', line)  # 非捕获分组  sonar Code Smell
    # print(fields)


def main():
    print('recipe1'.center(20, '*'))
    recipe1()


if __name__ == '__main__':
    main()
